
// function 声明式定义
function fun1(a:number, b:number):number {
    return a + b
}

// 字面量 完整写法
const fnu2:(a:number, b:number ) => number= function(a: number, b:number):number{
    return a + b
}

// 简写： 类型推断
const fun3 = function(a: number, b:number):number{
    return a + b
}

// 可选参数（参数?:类型）: 在非严格模式下， undefined null 是任何类型的子类型，可以给任何类型赋值
function fun4(a: number, b?:number): number{
    return (a + b) ? b : 1
}
fun4(2)
console.log('可选参数',fun4(2));


// 默认参数
function fun5(a: number, b:number = 5):number {
    return a + b
}

fun5(2,2)
console.log('默认参数',fun5(1));


// 剩余参数
function sum(a:number, b:number, ...arg:number[]):number {
    let total: number = 0
    total += a
    total += b
    total = arg.reduce((pre,cur) => pre +cur, total)
    return total
}
sum(1,2,3,4,5,5,6)
console.log('剩余参数',sum(1,2,3,4,5,5,6)
);







export {}



